]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
keyboard: Make items in language menu unfocusable
authorFlorian Müllner <fmuellner@gnome.org>
Tue, 11 Sep 2018 16:00:22 +0000 (18:00 +0200)
committerFlorian Müllner <florian.muellner@gmail.com>
Sat, 9 Feb 2019 14:48:27 +0000 (14:48 +0000)
The menu grabs the key focus when opened, which takes focus away from
whichever actor triggered the keyboard. And as the menu doesn't have
any text entries, the keyboard is popped down as a result.

Prevent this by making the menu items unfocusable, so the keyboard
focus just stays where it is. Considering that the menu is part
of the on-screen keyboard itself, not being keyboard-navigatable
isn't a big deal here.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/171

js/ui/keyboard.js

index c8eb29719553a110a664e98c61d9a2b395bb495e..bfddcdec908659bce73fb15629808c6245cae00f 100644 (file)
@@ -189,16 +189,20 @@ var LanguageSelectionPopup = class extends PopupMenu.PopupMenu {
         let inputSourceManager = InputSourceManager.getInputSourceManager();
         let inputSources = inputSourceManager.inputSources;
 
+        let item;
         for (let i in inputSources) {
             let is = inputSources[i];
 
-            this.addAction(is.displayName, () => {
+            item = this.addAction(is.displayName, () => {
                 inputSourceManager.activateInputSource(is, true);
             });
+            item.actor.can_focus = false;
         }
 
         this.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
-        this.addSettingsAction(_("Region & Language Settings"), 'gnome-region-panel.desktop');
+        item = this.addSettingsAction(_("Region & Language Settings"), 'gnome-region-panel.desktop');
+        item.actor.can_focus = false;
+
         this._capturedEventId = 0;
 
         this._unmapId = actor.connect('notify::mapped', () => {